package client.view;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import java.util.Vector;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;

import beans.ClienteBean;
import beans.CondicionCompraBean;
import beans.DomicilioBean;
import client.controlador.Controlador;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class IngresarCliente extends javax.swing.JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JLabel lblCuit;
	private JTextField txtCuit;
	private JTextField txtNombre;
	private JLabel lblPiso;
	private JLabel lblNumero;
	private JLabel lblCalle;
	private JTextField txtCalle;
	private JComboBox jComboCondiciones;
	private JTextField txtPiso;
	private JTextField txtLocalidad;
	private JButton jButtonCerrar;
	private JButton jButtonAceptar;
	private JTextField txtDepartamento;
	private JTextField txtNumero;
	private JLabel lblLocalidad;
	private JLabel lblDepartamento;
	private JLabel lblCondicionCompra;
	private JTextField txtCondicionIva;
	private JLabel lblCondicion;
	private JLabel lblNombre;
	private List<CondicionCompraBean> condiciones2=new Vector<CondicionCompraBean>();
	private List<CondicionCompraBean> condiciones;
	private JButton jButtonAsignar;
	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				IngresarCliente inst = new IngresarCliente();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public IngresarCliente() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			{
				lblCuit = new JLabel();
				getContentPane().add(lblCuit);
				lblCuit.setText("CUIT");
				lblCuit.setBounds(12, 12, 56, 16);
			}
			{
				lblNombre = new JLabel();
				getContentPane().add(lblNombre);
				lblNombre.setText("NOMBRE:");
				lblNombre.setBounds(12, 47, 81, 16);
			}
			{
				lblCondicion = new JLabel();
				getContentPane().add(lblCondicion);
				lblCondicion.setText("CONDICION IVA");
				lblCondicion.setBounds(11, 85, 138, 16);
			}
			{
				txtCuit = new JTextField();
				getContentPane().add(txtCuit);
				txtCuit.setBounds(111, 9, 197, 23);
			}
			{
				txtNombre = new JTextField();
				getContentPane().add(txtNombre);
				txtNombre.setBounds(111, 44, 197, 23);
			}
			{
				txtCondicionIva = new JTextField();
				getContentPane().add(txtCondicionIva);
				txtCondicionIva.setBounds(111, 82, 196, 23);
			}
			{
				lblCondicionCompra = new JLabel();
				getContentPane().add(lblCondicionCompra);
				lblCondicionCompra.setText("CONDICION COMPRA");
				lblCondicionCompra.setBounds(12, 122, 130, 16);
			}
				ComboBoxModel jComboCondicionesModel = 
						new DefaultComboBoxModel(
								new String[] {  });
				jComboCondiciones = new JComboBox();
				getContentPane().add(jComboCondiciones);
				jComboCondiciones.setModel(jComboCondicionesModel);
				condiciones=Controlador.getInstancia().obtenerCondicionesCompra();
				jComboCondiciones.addItem("Ninguna");
				for(int i=0;i<condiciones.size();i++){
					jComboCondiciones.addItem(condiciones.get(i).getFormaDePago());
					
				}
				jComboCondiciones.setBounds(149, 119, 257, 23);
			{
				txtCalle = new JTextField();
				getContentPane().add(txtCalle);
				txtCalle.setBounds(111, 160, 196, 23);
			}
			{
				lblCalle = new JLabel();
				getContentPane().add(lblCalle);
				lblCalle.setText("CALLE");
				lblCalle.setBounds(12, 163, 70, 16);
			}
			{
				lblNumero = new JLabel();
				getContentPane().add(lblNumero);
				lblNumero.setText("NUMERO");
				lblNumero.setBounds(12, 191, 70, 16);
			}
			{
				lblPiso = new JLabel();
				getContentPane().add(lblPiso);
				lblPiso.setText("PISO");
				lblPiso.setBounds(12, 233, 50, 16);
			}
			{
				lblDepartamento = new JLabel();
				getContentPane().add(lblDepartamento);
				lblDepartamento.setText("DEPARTAMENTO");
				lblDepartamento.setBounds(12, 268, 123, 16);
			}
			{
				lblLocalidad = new JLabel();
				getContentPane().add(lblLocalidad);
				lblLocalidad.setText("LOCALIDAD");
				lblLocalidad.setBounds(12, 303, 87, 16);
			}
			{
				txtNumero = new JTextField();
				getContentPane().add(txtNumero);
				txtNumero.setBounds(111, 195, 84, 23);
			}
			{
				txtPiso = new JTextField();
				getContentPane().add(txtPiso);
				txtPiso.setBounds(111, 230, 59, 23);
			}
			{
				txtDepartamento = new JTextField();
				getContentPane().add(txtDepartamento);
				txtDepartamento.setBounds(111, 265, 59, 23);
			}
			{
				txtLocalidad = new JTextField();
				getContentPane().add(txtLocalidad);
				txtLocalidad.setBounds(111, 300, 196, 23);
			}
			{
				jButtonAceptar = new JButton();
				getContentPane().add(jButtonAceptar);
				jButtonAceptar.setText("ACEPTAR");
				jButtonAceptar.setBounds(111, 362,108, 38);
				jButtonAceptar.setSelected(true);
				jButtonAceptar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						//VERIFICAR INFORMACION INGRESADA
						DomicilioBean domicilio=new DomicilioBean(txtCalle.getText(), Integer.valueOf(txtNumero.getText()), Integer.valueOf(txtPiso.getText()),
								txtDepartamento.getText(), txtLocalidad.getText());
						ClienteBean cliente=new ClienteBean(txtCuit.getText(),txtNombre.getText(),txtCondicionIva.getText(),condiciones2,domicilio);
						if(Controlador.getInstancia().ingresarCliente(cliente)){
							Exito e=new Exito();
							e.setLocationRelativeTo(null);
							e.setVisible(true);
							this.limpiarEtiquetas();
						}else{
							//ventana no se ingreso.
						}
					}

					private void limpiarEtiquetas() {
						txtCalle.setText("");
						txtCondicionIva.setText("");
						txtCuit.setText("");
						txtDepartamento.setText("");
						txtLocalidad.setText("");
						txtNombre.setText("");
						txtNumero.setText("");
						txtPiso.setText("");
						condiciones2.removeAll(condiciones2);
						
					}
				});
			}
			{
				jButtonCerrar = new JButton();
				getContentPane().add(jButtonCerrar);
				jButtonCerrar.setText("CERRAR");
				jButtonCerrar.setBounds(261, 362, 108, 38);
				jButtonCerrar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						dispose();
					}
				});
			}
			{
				jButtonAsignar = new JButton();
				getContentPane().add(jButtonAsignar);
				jButtonAsignar.setText("ASIGNAR");
				jButtonAsignar.setBounds(418, 119, 86, 23);
				jButtonAsignar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						String combo=jComboCondiciones.getSelectedItem().toString();
						if(!combo.equals("Ninguna")){
							for(int i=0;i<condiciones.size();i++){
								if(condiciones.get(i).getFormaDePago().equals(combo)){
									condiciones2.add(condiciones.get(i));
								}
							}
							combo="Ninguna";
							jComboCondiciones.removeAllItems();
							jComboCondiciones.addItem("Ninguna");
							condiciones=Controlador.getInstancia().obtenerCondicionesCompra();
							for(int i=0;i<condiciones.size();i++){
								jComboCondiciones.addItem(condiciones.get(i).getFormaDePago());
							}
							Exito e=new Exito();
							e.setLocationRelativeTo(null);
							e.setVisible(true);
						}
					}
				});
			}
			pack();
			this.setSize(538, 462);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}

}
